/**
 *******************************************************************************
 * @FileName  : hci_tr_h4.h
 * @Author    : GaoQiu
 * @CreateDate: 2020-09-10
 * @Copyright : Copyright(C) GaoQiu
 *              All Rights Reserved.
 *
 *******************************************************************************
 *
 * The information contained herein is confidential and proprietary property of
 * GaoQiu and is available under the terms of Commercial License Agreement
 * between GaoQiu and the licensee in separate contract or the terms desc ribed
 * here-in.
 *
 * This heading MUST NOT be removed from this file.
 *
 * Licensees are granted free, non-transferable use of the information in this
 * file under Mutual Non-Disclosure Agreement. NO WARRENTY of ANY KIND is provided.
 *
 *******************************************************************************
 */
#ifndef HCI_TR_H4_H_
#define HCI_TR_H4_H_

#include "utils/fifo.h"

#define HCI_H4_DMA_MODE_EN      1

/*! The number of HCI H4 Transport Rx buffer  define. */
#define HCI_H4_TR_RX_BUF_NUM    4
#define HCI_H4_RING_BUF_SIZE    1024

/*! H4 flush timeout */
#define HCI_H4_FLUSH_TO         500 /*! in ms*/

/**
 * @brief : H4 transport initialization.
 * @param : pFifo       Pointer point to HCI rx fifo.
 * @return: none
 */
void HCI_TR_H4Init(fifo_t *pLhciCmdFifo, fifo_t *pLhciAclFifo);

/**
 * @brief : H4 transport rx handler.
 * @param : none.
 * @return: none
 */
void HCI_TR_H4RxHandler(void);

/**
 * @brief : H4 IRQ handler.
 * @param : none.
 * @return: none
 */
void HCI_TR_H4IRQHandler(void);


#endif /* HCI_TR_H4_H_ */
